

package frsf.cidisi.exercise.arqueologo.search;

import frsf.cidisi.faia.agent.search.GoalTest;
import frsf.cidisi.faia.state.AgentState;

public class ArqueologoGoal extends GoalTest {

    @Override
    public boolean isGoalState (AgentState agentState) {
    	ArqueologoAgentState arqState = (ArqueologoAgentState) agentState;
    	
    	//El agente llega a la meta cuando llega a destino.
        if(arqState.getPosicion().equals(arqState.getDestino()))
        	//En el caso de llegar a la meta,primero se asegura de que exita un cofre para juntar, y si la capacidad
        	//de su acoplado permite cargar el mismo.
        	if(arqState.getmundo().getCofre(arqState.getDestino()) != null){
        		if(arqState.getCapacidadRestante() < arqState.getmundo().getCofre(arqState.getDestino()).getPeso()){
                            arqState.visualizarResultado();
//                            arqState.visualizarResultadoFinal();
                            return true;
        		}else{
                            return false;
        		}
        	}else{
                    arqState.visualizarResultado();
//                    arqState.visualizarResultadoFinal();
                    return true;
        	}
        return false;
	}
}